//数据结构Set
let s = new Set([1, 2, 3, 1, 4])
// console.log(s)

//数组的去重
let arr1 = [1, 2, 3, 4, 5, 4, 3, 2, 1, 2]
let arr2 = [4, 5, 6, 7, 5, 4]
let newarr = [...arr1, ...arr2] //把数组里面的数打散，扩展运算符
let set = new Set(newarr)
// console.log(set)
//将Set数据结构转换为数组
//方法一
newarr = [...set] //将数组里面的数打散，扩展运算符
// console.log(newarr)
//方法二
newarr = Array.from(set)
// console.log(newarr)

// console.log(set.has(1))
// console.log(set.has(8))

//如何来求两个数组的交集
let s1 = new Set(arr1)
let s2 = new Set(arr2)
let jjarr = []
arr1.forEach(value=>{
    if(s2.has(value))
        jjarr.push(value)
})
console.log([...new Set(jjarr)])
console.log(Array.from(new Set(jjarr)))
//如何求两个数组的差集
let cjarr = []
arr1.forEach(value=>{
    if(!s2.has(value))
        cjarr.push(value)
})
arr2.forEach(value=>{
    if(!s1.has(value))
        cjarr.push(value)
})
console.log(cjarr)
console.log([...new Set(cjarr)])

//Map数据结构的定义
// let m = new Map()
// let a = []
// let b = {}
// let c = 'hello'
// m.set(a,2)
// m.set(b,3).set(c,5)
// console.log(m)

//Map结构的数据的遍历，类似数组
// m.forEach(function(value,key){
//     console.log(key,value)
// })
// for(let value of m){
//     console.log(value)
// }
